今天要來教各位如何利用os套件的指令,讀取和寫入檔案,以及輸入終端機指令!
以下為常用的模式
Mode | 說明 |
---|---|
os.O_RDONLY | 以只讀的方式打開 |
os.O_WRONLY | 以只寫的方式打開 |
os.O_RDWR | 以讀寫的方式打開 |
os.O_APPEND | 以追加的方式打開 |
os.O_CREAT | 建立並打開新的檔案 |
#需要多種模式可用'|'隔開
file_1 = os.open('./ironman.txt', os.O_CREAT | os.O_RDWR)
ironman_dir = os.listdir()
print(ironman_dir) #檢查是否創建成功
輸出結果
['ironman.txt', 'test_rename.txt', 'os.ipynb', 'test_rename', 'MQTT_test.ipynb', 'MQTT_publish.py', 'MQTT_subscribe.py']
這裡要注意的是,os.write() 這個函數只能接收 byte 物件,所以要將 str 透過 .encode() 轉換成 byte 物件
data = 'Share More Gain More!'
data_byte = data.encode()
os.write(file_1, data_byte)
輸出結果
21 #印出寫入了幾個字
這裡要特別注意,因為剛剛有寫入資料,所以目前文件的指針是在最後面,要先設定到最前面才能正常讀取資料喔!
os.lseek(file_1, 0, os.SEEK_SET) #將指針移到最前面
data_r = os.read(file_1, 21).decode()
print(data_r)
輸出結果
Share More Gain More!
os.remove('./test_rename.txt')
ironman_dir = os.listdir()
print(ironman_dir) #檢查是否刪除成功
輸出結果
#可以看到 test_rename.txt 已經從目錄中被刪除了
['ironman.txt', 'os.ipynb', 'test_rename', 'MQTT_test.ipynb', 'MQTT_publish.py', 'MQTT_subscribe.py']
示範如下:
查詢目前工作路徑的檔案及目錄
os.system("ls -l")
輸出結果
total 48
-rw-r--r-- 1 ryanhsu staff 888 Jul 24 21:42 MQTT_publish.py
-rw-r--r-- 1 ryanhsu staff 731 Jul 24 23:55 MQTT_subscribe.py
-rw-r--r--@ 1 ryanhsu staff 7635 Jul 24 23:55 MQTT_test.ipynb
-rwxr-xr-x 1 ryanhsu staff 21 Jul 25 19:37 ironman.txt
-rw-r--r-- 1 ryanhsu staff 713 Jul 24 23:58 os.ipynb
drwxr-xr-x 2 ryanhsu staff 64 Jul 25 16:50 test_rename
建立資料夾,並查詢目前工作路徑的檔案及目錄
os.system("mkdir test")
os.system("ls -l")
輸出結果
total 48
-rw-r--r-- 1 ryanhsu staff 888 Jul 24 21:42 MQTT_publish.py
-rw-r--r-- 1 ryanhsu staff 731 Jul 24 23:55 MQTT_subscribe.py
-rw-r--r--@ 1 ryanhsu staff 7635 Jul 24 23:55 MQTT_test.ipynb
-rwxr-xr-x 1 ryanhsu staff 21 Jul 25 19:37 ironman.txt
-rw-r--r-- 1 ryanhsu staff 713 Jul 24 23:58 os.ipynb
drwxr-xr-x 2 ryanhsu staff 64 Jul 25 20:01 test
drwxr-xr-x 2 ryanhsu staff 64 Jul 25 16:50 test_rename
查詢Python版本
os.system("python3 --version")
輸出結果
Python 3.12.4
那os套件的部分就先交到這邊,相信大家實作完後應該對os有基本的了解,各位讀者如有疑問或建議,歡迎在下方留言一起討論!
下一篇將教大家如何利用Python做資料處理!
參考資料:https://steam.oxxostudio.tw/category/python/library/os.html